home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / var / lib / dpkg / info / cupsddk-drivers.postinst < prev    next >
Encoding:
Text File  |  2009-01-19  |  3.0 KB  |  83 lines

  1. #! /bin/sh
  2. # postinst script for cupsddk
  3. # $Id: $
  4. #
  5. # see: dh_installdeb(1)
  6.  
  7. set -e
  8.  
  9. # summary of how this script can be called:
  10. #        * <postinst> `configure' <most-recently-configured-version>
  11. #        * <old-postinst> `abort-upgrade' <new version>
  12. #        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
  13. #          <new-version>
  14. #        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
  15. #          <failed-install-package> <version> `removing'
  16. #          <conflicting-package> <version>
  17. # for details, see http://www.debian.org/doc/debian-policy/ or
  18. # the debian-policy package
  19. #
  20. # quoting from the policy:
  21. #     Any necessary prompting should almost always be confined to the
  22. #     post-installation script, and should be protected with a conditional
  23. #     so that unnecessary prompting doesn't happen if a package's
  24. #     installation fails and the `postinst' is called with `abort-upgrade',
  25. #     `abort-remove' or `abort-deconfigure'.
  26.  
  27. case "$1" in
  28.     configure)
  29.         # Do the following only if CUPS is running and the needed CUPS tools
  30.         # are available
  31.     if which lpstat > /dev/null 2>&1 && \
  32.         which lpinfo > /dev/null 2>&1 && \
  33.         which lpadmin > /dev/null 2>&1 && \
  34.         lpstat -r > /dev/null 2>&1; then
  35.          # Update the PPD files of all already installed print queues
  36.         driverregexp='^drv:'
  37.         genmodelnameregexp=''
  38.         [ ! -z "$genmodelnameregexp" ] && \
  39.         genmodelnameregexp="; $genmodelnameregexp"
  40.         genmodelnameregexp='s/\s*\(recommended\)//'"$genmodelnameregexp"
  41.         tempfiles=
  42.         trap 'rm -f $tempfiles; exit 0' 0 1 2 13 15
  43.         tmpfile1=`mktemp -t updateppds.XXXXXX`
  44.         tempfiles="$tempfiles $tmpfile1"
  45.         lpinfo -m | grep -E $driverregexp > $tmpfile1
  46.         cd /etc/cups/ppd
  47.         for ppd in `ls -1 *.ppd 2>/dev/null`; do
  48.         queue=${ppd%.ppd}
  49.         modelname=`grep '\*ModelName:' $ppd | cut -d '"' -f 2 | perl -p -e 's/\n$//' | perl -p -e "$genmodelnameregexp" | perl -p -e 's/(\W)/\\\\$1/g'`
  50.         lang=`grep '\*LanguageVersion:' $ppd | cut -d ' ' -f 2 | perl -e 'print lc(<>)' | perl -p -e 's/[\r\n]//gs'`
  51.         ppdfound="0"
  52.         englishppduri=""
  53.         tmpfile2=`mktemp -t updateppds.XXXXXX`
  54.         tempfiles="$tempfiles $tmpfile2"
  55.         cat $tmpfile1 | perl -p -e "$genmodelnameregexp" | grep -E '^\S+\s+.*'"$modelname"'$' | cut -d ' ' -f 1 > $tmpfile2
  56.         while read newppduri; do
  57.             [ "$ppdfound" = "0" ] && lpadmin -p $queue -m $newppduri
  58.             newlang=`grep '\*LanguageVersion:' $ppd | cut -d ' ' -f 2 | perl -e 'print lc(<>)' | perl -p -e 's/[\r\n]//gs'`
  59.             [ "$newlang" = "$lang" ] && ppdfound="1"
  60.             [ "$newlang" = "english" ] && englishppduri="$newppduri"
  61.         done < $tmpfile2
  62.         [ "$ppdfound" = "0" ] && [ ! -z "$englishppduri" ] && lpadmin -p $queue -m $englishppduri && ppdfound="1"
  63.         [ "$ppdfound" = "1" ] && echo PPD for printer $queue updated >&2
  64.         done
  65.     fi
  66.     ;;
  67.  
  68.     abort-upgrade|abort-remove|abort-deconfigure)
  69.     ;;
  70.  
  71.     *)
  72.         echo "postinst called with unknown argument \`$1'" >&2
  73.         exit 1
  74.     ;;
  75. esac
  76.  
  77. # dh_installdeb will replace this with shell code automatically
  78. # generated by other debhelper scripts.
  79.  
  80.  
  81.  
  82. exit 0
  83.